﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PSMockTest
{

	/// <summary>
	/// This class is used as a test subject for PSMock framework tests. It contains a few 
	/// properties and functions, which are mocked.
	/// </summary>
	[PSMock.MockFunction]
	public class EchoClass
	{
		public string DataField = null;

		public event EventHandler<EventArgs> EventOcurred;

		public EchoClass()
		{
			EventOcurred += delegate { };
		}

		/// <summary>
		/// Get set propery.
		/// </summary>
		public string DataProperty
		{
			get { return DataField; }
			set { DataField = value; }
		}

		public static string StaticDataProperty
		{
			get { return null; }
			set { ; }
		}

		public string Echo(string arg)
		{
			return arg;
		}

		public void Set2(string arg, string arg2)
		{
			
		}

		public string EchoCombine(string arg1, string arg2)
		{
			return arg1 + ":" + arg2;
		}

		public int EchoInt(int arg)
		{
			return arg;
		}

		public void Set(string arg)
		{
			DataField = arg;
		}

		public void Set()
		{
			DataField = "const";
		}

		public static string StaticEcho(string arg)
		{
			return arg;
		}

		internal DateTime GetCurrentDate()
		{
			return DateTime.Now;
		}
	}
}
